package com.wzapp.sitposture.setup.service;

import com.alibaba.fastjson.JSONObject;
import com.wzapp.sitposture.setup.entity.City;
import com.wzapp.sitposture.setup.entity.Setup;

import java.util.List;

/**
 * Created by qianglong on 2018/1/16.
 */
public interface SetupService {

    /**
     * 功能: 根据版本查询城市列表br/>
     *
     * @author ql
     * @create 2018-05-08 20:10
     * @param version
     * @return java.util.List<City>
     **/
    List<City> findCitiesByVersion(String version);

    /**
     * 功能: 根据id查询城市名称<br/>
     *
     * @author ql
     * @create 2018-05-08 20:11
     * @param id
     * @return java.lang.String
     **/
    String findCityById(String id);
    /**
     * 功能: 根据id查询城市名称全称：省份.城市<br/>
     *
     * @author ql
     * @create 2018-05-08 20:11
     * @param id
     * @return java.lang.String
     **/
    String findFullCityNameById(String id);
    /**
     * 功能: 根据城市名称查询城市id<br/>
     *
     * @author ql
     * @create 2018-05-08 20:12
     * @param cityName
     * @return java.lang.String
     **/
    String getCityId(String cityName);

    /**
     * 功能: 根据分组类型查询配置列表<br/>
     *
     * @author ql
     * @create 2018-05-08 20:14
     * @param groupType
     * @param version
     * @return java.util.List<Setup>
     **/
    List<Setup> findByGroupType(String groupType, String version);

    /**
     * 功能: 查询所有的城市<br/>
     *
     * @author ql
     * @create 2018-05-08 20:14
     * @param
     * @return java.util.List<City>
     **/
    List<City> findProvince();

    /**
     * 功能: 根据省份查询城市列表<br/>
     *
     * @author ql
     * @create 2018-05-08 20:14
     * @param proviceCode
     * @return java.util.List<City>
     **/
    List<City> findCitiesByProvinceCode(String proviceCode);


    /**
     * 功能: 获取城市信息<br/>
     *
     * @author ql
     * @create 2018/8/22 21:52
     * @return com.alibaba.fastjson.JSONObject
     **/
    JSONObject findCityInfo();

    /**
     * 功能: 根据分组类型获取一个配置<br/>
     *
     * @author ql
     * @create 2018/8/30 15:22
     * @param groupType 分组类型
     * @return com.alibaba.fastjson.JSONObject
     **/
    JSONObject findOneByGroupType(String groupType);

    /**
     * 功能: 根据主键查询配置 <br/>
     *
     * @author ql
     * @create 2018-10-24 14:17
     * @param id
     * @return Setup
     **/
    Setup findOneById(String id);
    /**
     * 功能: 根据类型获取相应校验是否打开，开-true，关-false<br/>
     *
     * @author ql
     * @create 2018/10/31 11:39
     * @param groupType
     * @return boolean
     **/
    boolean getSwitch(String groupType);
}
